package com.taikang.system.service.impl;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import javax.annotation.Resource;

import org.apache.ibatis.session.RowBounds;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.taikang.base.page.PageResult;
import com.taikang.base.util.PoiUtil;
import com.taikang.system.dao.ISysRegionCircleDao;
import com.taikang.system.dao.ISysRegionDao;
import com.taikang.system.dto.SysRegionCircleCondition;
import com.taikang.system.entity.SysRegion;
import com.taikang.system.entity.SysRegionCircle;
import com.taikang.system.service.ISysRegionCircleService;

@Service("sysRegionCircleServiceImpl")
@Transactional(value = "transactionManager")
public class SysRegionCircleServiceImpl implements ISysRegionCircleService{

	@Resource(name = "sysRegionCircleDaoImpl")
	private ISysRegionCircleDao sysRegionCircleDao;
	@Resource
	private ISysRegionDao regionDao;

	/**
	 * 分页查询
	 * @param pageResult 分页对象
	 * @param condition 查询条件类
	 */
	public void listSysRegionCircleByPage(PageResult<SysRegionCircle> pageResult,SysRegionCircleCondition condition){
		int rows = sysRegionCircleDao.listSysRegionCircleByPageCount(condition);
		pageResult.setRows(rows);

		RowBounds rowBounds = new RowBounds(pageResult.getCurrentPageIndex(),pageResult.getPageSize());
		List<SysRegionCircle> list = sysRegionCircleDao.listSysRegionCircleByPage(rowBounds,condition);
		pageResult.setResult(list);
	}

	/**
	 * 根据ID查询
	 * @param id 主键
	 * @return 商圈管理
	 */
	public SysRegionCircle getSysRegionCircleById(String id){
		return sysRegionCircleDao.getSysRegionCircleById(id);
	}

	/**
	 * 新增
	 * @param item 商圈管理
	 */
	public void add(SysRegionCircle item){
		sysRegionCircleDao.add(item);
	}

	/**
	 * 修改
	 * @param item 商圈管理
	 */
	public void update(SysRegionCircle item){
		sysRegionCircleDao.update(item);
	}

	/**
	 * 根据ID集合批量删除
	 * @param ids ID集合
	 */
	public void delByIds(String[] ids){
		sysRegionCircleDao.delByIds(ids);
	}

	/**
	 * 为商圈设置城市
	 */
	public void fitCity(SysRegionCircleCondition condition) {
		sysRegionCircleDao.fitCity(condition);
	}

	/**
	 * 根据条件查询
	 * @return
	 */
	public List<SysRegionCircle> listSysRegionCircleByCondition( SysRegionCircleCondition condition) {
		return sysRegionCircleDao.listSysRegionCircleByCondition(condition);
	}
	
	@Override
	public String importXls(String path) {
		String message  = "";
		File file = new File(path);
		InputStream is = null;
		try {
			is = new FileInputStream(file);
			HSSFWorkbook wb = new HSSFWorkbook(is);
			HSSFSheet sheet = wb.getSheetAt(0);
			// 获得总行数
			int rows = sheet.getLastRowNum();
			// 遍历所有行
			for (int i = 1; i <= rows; i++) {
				HSSFRow row = sheet.getRow(i);
				if(row == null){
					continue;
				}
				SysRegionCircle item = new SysRegionCircle();
				String name = PoiUtil.getCellValue(row.getCell(0));	//城市	
				item.setRegionName(name);
				String circleName = PoiUtil.getCellValue(row.getCell(1));	//商圈	
				item.setName(circleName);
				SysRegion region = regionDao.getSysRegionByName(name);
				if(region!=null){
					item.setRegionId(region.getId());
				}
				item.setSort(i);
				sysRegionCircleDao.add(item);
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return message;
	}

}

